#include "EstadoDeFortificacionDeUnidades.h"

EstadoDeFortificacionDeUnidades::EstadoDeFortificacionDeUnidades(RealizacionDePartida* realizacionDePartida)
{
	this->realizacionDePartida = realizacionDePartida;
}

void EstadoDeFortificacionDeUnidades::reforzarEjercitos(Jugador* jugador) {
	std::cerr<<"Esta accion no es valida para este estado"<<std::endl;
}

void EstadoDeFortificacionDeUnidades::colocarEjercitos(Jugador* jugador, Territorio* territorio, unsigned int cantidadDeEjercitos) {
	std::cerr<<"Esta accion no es valida para este estado"<<std::endl;
}

void EstadoDeFortificacionDeUnidades::realizarAtaque(Ataque* ataque) {
	std::cerr<<"Esta accion no es valida para este estado"<<std::endl;
}
	
void EstadoDeFortificacionDeUnidades::moverEjercitos(Jugador* jugador, Territorio* origen, Territorio* destino, unsigned int cantidadDeEjercitos) {
	
	if ( (origen->enPoderDeJugador(jugador->getColor())) && (destino->enPoderDeJugador(jugador->getColor())) ) {
		origen->quitarEjercitos(cantidadDeEjercitos);
		destino->colocarEjercitos(cantidadDeEjercitos,jugador->getColor());
	}
	realizacionDePartida->getJuego()->pasarAlSiguienteTurno();
	realizacionDePartida->setEstado(realizacionDePartida->getEstadoDeRefuerzoYReubicacion());
	realizacionDePartida->getEstadoDeRefuerzoYReubicacion()->reforzarEjercitos(realizacionDePartida->getJuego()->getJugadorEnTurno());
}

EstadoDeFortificacionDeUnidades::~EstadoDeFortificacionDeUnidades()
{
}
